<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
</head>
<body>
    <div id="root">
        <counter ref="one" @change="handleChange"></counter>
        <counter ref="two" @change="handleChange"></counter>
        <div>{{total}}</div>
    </div>
    <script>
        Vue.component('counter',{
            template:'<div @click="handleClick">{{number}}</div>',
            data: function(){
                return {
                    number:0
                }
            },
            methods:{
                handleClick:function(){
                   this.number++;
                   this.$emit('change');
                }
            }
        })
        var vm=new Vue({
            el:'#root',
            data:{
                total:0
            },
            methods:{
               handleChange:function(){
                   this.total=this.$refs.one.number+this.$refs.two.number;
               }
            }
        })
    </script>
</body>
</html>